“Cloud computing” can refer to a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that may be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model may be composed of one or more of at least five characteristics, one or more of at least three service models, and one or more of at least four deployment models.
The characteristics may include the following:
On-demand self-service—A consumer may unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
Broad network access—Capabilities may be available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
Resource pooling—The provider's computing resources may be pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There may be a sense of location independence in that the customer generally does not have any control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center). Examples of resources include storage, processing, memory, and network bandwidth.
Rapid elasticity—Capabilities may be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and may be appropriated in any quantity at any time.
Measured service—Cloud systems may automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). This metering may be done on a pay-per-use or charge-per-use basis. Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
Service models may include the following:
Software as a Service (SaaS)—The capability provided to the consumer may be to use the provider's applications running on a cloud infrastructure. A cloud infrastructure may be the collection of hardware and software that enables the characteristics of cloud computing. The cloud infrastructure may be viewed as containing both a physical layer and an abstraction layer. The physical layer may comprise the hardware resources to support the cloud services being provided, and may include server, storage, and network components. The abstraction layer may comprise the software deployed across the physical layer, which manifests the cloud characteristics. Conceptually the abstraction layer sits above the physical layer.
Platform as a Service (PaaS)—The capability provided to the consumer may be to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. This capability does not necessarily preclude the use of compatible programming languages, libraries, services, and tools from other sources. The consumer typically does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
Infrastructure as a Service (IaaS)—The capability provided to the consumer may be to provision processing, storage, networks, and other fundamental computing resources where the consumer may be able to deploy and run arbitrary software, which may include operating systems and applications. The consumer may not manage or control the underlying cloud infrastructure but may have control over operating systems, storage (though the consumer typically does not have control over the physical location(s) or over the entire physical storage device), and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
Deployment models may include the following:
Private cloud—The cloud infrastructure may be provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
Community cloud—The cloud infrastructure may be provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
Public cloud—The cloud infrastructure may be provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It typically exists on the premises of the cloud provider.
Hybrid cloud—The cloud infrastructure may be a composition of two or more distinct cloud infrastructures (private, community, or public) that may remain unique entities, but may be bound together by standardized or proprietary technology that may enable data and application portability (e.g., cloud bursting for load balancing between clouds).